# 定义一个圆形类,半径是这个圆形的属性,
# 实例化一个半径为5的圆形,一个半径为10的圆形，定义方法计算圆形的面积和周长

# class Cycle():
#     def __init__(self, r):
#         self.r = r
#
#     def mj(self):
#         return 3.14 * (self.r ** 2)
#
#     def zc(self):
#         return 3.14 * self.r * 2
#
# c1 = Cycle(5)
# print(c1.mj())
# print(c1.zc())
# c2 = Cycle(10)
# print(c2.mj())
# print(c2.zc())

# 补充代码，实现用户登录和注册

class User:
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd

class Account:

    def __init__(self):
        # 用户列表，数据格式：[user对象，user对象，user对象]
        self.user_list = []

    def login(self, name, pwd):
        """
        用户登录，输入用户名和密码然后去self.user_list中校验用户合法性
        合法性：
        1、用户存在于self.user_list中
        2、用户名对应的密码校验通过
        :return:
        """
        for user in self.user_list:
            if user.name == name:
                if user.pwd == pwd:
                    print("登录成功")
                else:
                    print("登录失败, 请重新登录")
                break
        else:
            print("您的用户名尚未注册, 请先注册")

    def register(self, name, pwd):
        """
        用户注册，每注册一个用户就创建一个user对象，然后添加到self.user_list中，表示注册成
        功。
        合法性：注册的用户，不存在于self.user_list中
        :return:
        """
        for user in self.user_list:
            if user.name == name:
                print("您需要注册的用户名已经存在")
                break
        else:
            print("注册成功")
            self.user_list.append(User(name, pwd))

    def run(self, actionType, name, pwd):
        """
        主程序
        :return:
        """
        if actionType == 'login':
            self.login(name, pwd)
        elif actionType == 'register':
            self.register(name, pwd)


obj = Account()

while True:
    res = input("请输入指令（login/register/（q或Q退出））")
    if res.lower() == 'q':
        break

    if not res in ('login', 'register'):
        print("您输出的指令不正确!!")
        continue

    name = input("请输入用户名: ")
    pwd = input("请输入密码: ")

    obj.run(res, name, pwd)